include_directories(${CMAKE_CURRENT_LIST_DIR})

if(USE_LIBRARY)
    add_definitions(-DMC_IOC_LIBRARY)
endif()

list(APPEND PROJECT_HEADERS
    ${CMAKE_CURRENT_LIST_DIR}/McIocMacroGlobal.h
    ${CMAKE_CURRENT_LIST_DIR}/McIocConstantGlobal.h
    ${CMAKE_CURRENT_LIST_DIR}/McIocGlobal.h
    ${CMAKE_CURRENT_LIST_DIR}/Utils/IMcBeanBuildable.h
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/IMcXml.h
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/IMcBeanContent.h
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/IMcPropertyContent.h
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/IMcBean.h
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/Impl/McBeanCollection.h
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/Impl/McBean.h
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/Impl/McClassBean.h
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/Impl/McPluginBean.h
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/Impl/McConnect.h
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/Impl/McEnum.h
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/Impl/McList.h
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/Impl/McMap.h
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/Impl/McPlaceholder.h
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/Impl/McProperty.h
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/Impl/McRef.h
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/Impl/McValue.h
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/Impl/McConstructorArg.h
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/Impl/McPluginChecker.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanFactory/IMcBeanFactory.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanFactory/IMcBeanBuilderRegistry.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanFactory/IMcConfigurableBeanFactory.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanFactory/Impl/McAbstractBeanFactory.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanFactory/Impl/McDefaultBeanFactory.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanFactory/Impl/McResolverBeanFactory.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/IMcBeanBuilder.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/IMcBeanReferenceResolver.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/IMcCustomPlaceholder.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/IMcCustomBeanBuilderFactory.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/McCustomBeanBuilderContainer.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/Impl/McBeanReference.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/Impl/McBeanPlaceholder.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/Impl/McBeanEnum.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/Impl/McBeanConnector.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/Impl/McAbstractBeanBuilder.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/Impl/McObjectBeanBuilder.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/Impl/McObjectClassBeanBuilder.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/Impl/McSharedObjectClassBeanBuilder.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/Impl/McObjectPluginBeanBuilder.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/Impl/McSharedObjectPluginBeanBuilder.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/Impl/McGadgetBeanBuilder.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/Impl/McSharedGadgetBeanBuilder.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/Impl/McListBeanBuilder.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/Impl/McMapBeanBuilder.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/Impl/McSimpleBeanBuilder.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/Impl/McCustomBeanBuilder.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/Impl/McCustomBeanBuilderFactory.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilderReader/IMcBeanBuilderReader.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilderReader/Impl/McAbstractBeanBuilderReader.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilderReader/Impl/McXmlBeanBuilderReader.h
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilderReader/Impl/McAnnotationBeanDefinitionReader.h
    ${CMAKE_CURRENT_LIST_DIR}/ApplicationContext/IMcRefreshableApplicationContext.h
    ${CMAKE_CURRENT_LIST_DIR}/ApplicationContext/IMcApplicationContext.h
    ${CMAKE_CURRENT_LIST_DIR}/ApplicationContext/IMcReadableApplicationContext.h
    ${CMAKE_CURRENT_LIST_DIR}/ApplicationContext/Impl/McAbstractApplicationContext.h
    ${CMAKE_CURRENT_LIST_DIR}/ApplicationContext/Impl/McReadableApplicationContext.h
    ${CMAKE_CURRENT_LIST_DIR}/ApplicationContext/Impl/McXmlApplicationContext.h
    ${CMAKE_CURRENT_LIST_DIR}/ApplicationContext/Impl/McLocalPathApplicationContext.h
    ${CMAKE_CURRENT_LIST_DIR}/ApplicationContext/Impl/McAnnotationApplicationContext.h
)

list(APPEND PROJECT_SOURCES
    ${CMAKE_CURRENT_LIST_DIR}/McIocGlobal.cpp
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/Impl/McBeanCollection.cpp
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/Impl/McBean.cpp
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/Impl/McClassBean.cpp
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/Impl/McPluginBean.cpp
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/Impl/McConnect.cpp
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/Impl/McEnum.cpp
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/Impl/McList.cpp
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/Impl/McMap.cpp
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/Impl/McPlaceholder.cpp
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/Impl/McProperty.cpp
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/Impl/McRef.cpp
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/Impl/McValue.cpp
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/Impl/McConstructorArg.cpp
    ${CMAKE_CURRENT_LIST_DIR}/Utils/XmlBuilder/Impl/McPluginChecker.cpp
    ${CMAKE_CURRENT_LIST_DIR}/BeanFactory/Impl/McAbstractBeanFactory.cpp
    ${CMAKE_CURRENT_LIST_DIR}/BeanFactory/Impl/McDefaultBeanFactory.cpp
    ${CMAKE_CURRENT_LIST_DIR}/BeanFactory/Impl/McResolverBeanFactory.cpp
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/McCustomBeanBuilderContainer.cpp
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/Impl/McAbstractBeanBuilder.cpp
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/Impl/McObjectBeanBuilder.cpp
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/Impl/McObjectClassBeanBuilder.cpp
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/Impl/McSharedObjectClassBeanBuilder.cpp
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/Impl/McObjectPluginBeanBuilder.cpp
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/Impl/McSharedObjectPluginBeanBuilder.cpp
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/Impl/McGadgetBeanBuilder.cpp
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/Impl/McSharedGadgetBeanBuilder.cpp
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/Impl/McListBeanBuilder.cpp
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/Impl/McMapBeanBuilder.cpp
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilder/Impl/McSimpleBeanBuilder.cpp
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilderReader/Impl/McAbstractBeanBuilderReader.cpp
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilderReader/Impl/McXmlBeanBuilderReader.cpp
    ${CMAKE_CURRENT_LIST_DIR}/BeanBuilderReader/Impl/McAnnotationBeanDefinitionReader.cpp
    ${CMAKE_CURRENT_LIST_DIR}/ApplicationContext/Impl/McAbstractApplicationContext.cpp
    ${CMAKE_CURRENT_LIST_DIR}/ApplicationContext/Impl/McReadableApplicationContext.cpp
    ${CMAKE_CURRENT_LIST_DIR}/ApplicationContext/Impl/McXmlApplicationContext.cpp
    ${CMAKE_CURRENT_LIST_DIR}/ApplicationContext/Impl/McLocalPathApplicationContext.cpp
    ${CMAKE_CURRENT_LIST_DIR}/ApplicationContext/Impl/McAnnotationApplicationContext.cpp
)
